[レポート] Deep dive on Amazon FSx for Lustre #reinvent #STG302
AWS re:Invent 2021で行われた、「Deep dive on Amazon FSx for Lustre」のセッションレポートです。
この記事では要点をまとめてみました。
セッション概要
DESCRIPTION
Many workloads such as machine learning, high performance computing (HPC), video rendering, and financial simulations depend on compute instances accessing the same set of data through high-performance shared storage. In this session, learn how customers are using Amazon FSx for Lustre high-performance file systems to reduce their compute costs. The session also details how Foundation Medicine is using FSx for Lustre to transform cancer care for their patients. Leave with best practices and tips to accelerate your compute-intensive workloads.
SPEAKERS
- Jordan Dolman
- Jeffrey Lee
SESSION LEVEL
- 300 - Advanced
Amazon FSx シリーズについて
現在4つのファイルシステムを用意されています。
- FSx for Windows File Server
- FSx for Lustre
- FSx for Open ZFS
- FSx for NetApp ONTAP
FSx for Lustre の特徴
FSx for Lustre が実際のワークロードにもたらすものとは
- 拡張性の高いスループットキャパシティ
- 価格パフォーマンスに最適化されたストレージの選択オプション
- 高速インタフェースを介した S3 へのアクセス
拡張性の高いスループットキャパシティ
スケーラブルなパフォーマンスを達成している方法
- 一連のファイルサーバーとストレージの構成
- ファイルを書き込むとすべてのディスクへ自動的に分散して格納
- 読み込みも同様にすべてサーバーのフルパワーを活かすことができる
大きなファイルの書き込み時はファイルを自動的にシャード化か、ストライプ化して小分けにしたファイルを分散書き込みできます。
大きなファイルもFile part 1 - 3
に分けて分散して格納される。(セッション動画はアニメーションで表現しているので見るとわかりやすいです)
価格パフォーマンスに最適化されたストレージの選択オプション
ストレージの種類は4タイプ提供されています。
- HDD のストレージ
- HDD + SSD キャッシュの組み合わせたストレージ
- ストレージ容量の20%を SSD キャッシュに割り当て
- 冗長化された SSD のストレージ
- シングル SSD のストレージ
一般的なファイル操作の70%はメタデータの操作が占めており、メタデータは常にSSDベースのフラッシュストレージに保存されます。
次世代モデル
FSx for Luster の新モデルは Graviton プロセッセで構築されパフォーマンスが向上した。
- スループットは5倍向上
- 価格パフォーマンス比60%向上
- クライアントインスタンスあたりのスループットは4倍向上
データ圧縮機能
新機能データ圧縮オプションが提供されました。
- データが圧縮された分のスループットが向上する
- たとえば圧縮比率2対1の場合、1秒間に250MBデータ転送できるところ、圧縮されたことにより500MB転送できるといった具合
- 圧縮によるレイテンシーへの影響はなし
- ファイルの圧縮は Luster ファイルシステム内で行われる
- Luster をマウントしている EC2インスタンスで圧縮処理するようなことはない
- データ圧縮オプションの利用に追加コストは発生しない
高速インタフェースを介した S3 へのアクセス
FSx for Luster はひとつまたは、複数の S3バケットと連携できます。
Lustre を介した S3バケットへの読み込みアクセス
- FSx for Lustre と連携した S3バケットからメタデータをインポートする
- メタデータを使用し S3のオブジェクトをファイルシステム上のファイルとして表示ができる
- この段階では実データを Lustre にロードしてきたわけではなくメタデータのみのロードである
- Lustre をマウントした EC2インスタンスからファイルを開いてデータを読み込むと、S3 からシームレスに Lustre へロードがされる
- EC2インスタンスは Lustre からデータを読み取ることができる
Lustre から S3バケットへのデータ移動は APIを利用して手動エクスポートするか、自動エクスポートポリシーを実行する。
Luster を削除し、S3が唯一の永続的なデータストアとして利用できる。必要な期間だけ FSx for Luster の料金を支払いワークロードを実行できる。
Case study
MLモデルのトレーニングコストを削減した事例
機会学習のトレーニングをするトレーニング用のインスタンス(EC2)のお話。
- S3からデータをダウンロードしてきてEBSに保存してからトレーニングを開始するのに比べ、Lustreだと遅延読み込みでS3からシームレスにデータをダウンロードできる
- ダウンロード待ちをすることなくすぐにトレーニングを開始でき全体で70%の時間を短縮
そのため、データをダウンロードするだけの時間にEC2のコストを払わなくて済む。
ポイント
- 事前にデータをダウンロードする必要がなかったこと
- Lustre のパフォーマンスをスケールアップさせ、トレーニングインスタンスのスループットを最大化しあらゆる種類のボトルネックを回避できたこと
同じワークロードを再度実行するとさらに高速になり全体で80%の時間短縮。トレーニングとモデルのハイパーパラメータの最適化でモデルを絶えず調整するがデータは同じだからです。
移行事例紹介
Foundation Medicine社の FSx for Lustre への移行事例紹介です。Foundation Medicine社はがん治療を改善することを目的とした Genomics insights company です。
ゲノミクスデータは非常に大きいことで有名でデータを処理するのに大量のリソースが必要です。そのため、より多くの計算リソースと、高性能なストレージ性能が必要です。これがクラウドへ移行するときに抱えていた課題でした。
クラウドへ移行
最初はオンプレミスのシステムをそのままAWSへシフトした。EC2上に構築したセルフマネージドのストレージアプライアンスを採用しうまくいっていた。
- 数年間で研究需要は高まり、必要なデータやリソースは増え、研究者の数も増えるにつれて、セルフマネージドのストレージアプライアンスがボトルネックになってきた。
- スパイキーなワークロードのため、とくにスループットは性能限界に達しはじめた。
その頃、FSx for Luster が登場し、セルフマネージドのストレージアプライアンスを運用していく問題が解決された。
費用対効果の高いソリューション
- POSIX ファイルシステムから FSx for Lustre への乗り換えは作業上の変更点はなかった
- スケーラビリティ、ペタバイトのストレージと、スパイクに耐えられるスループット
これから
シーケンサーの技術が向上するにつれて、より多くのデータが取り出せるようなってくる。 より多くのデータがあるということは演算量が増えるということであり、演算量が増えるということはより多くの情報を得ることできるようになる。 情報量が多いということは、研究者にとっての情報量が多いということです。より良い製品開発するにはより多くのリソースを必要とします。
より多くの患者を助けるためにはより多くのものが必要です。
感想
こういった需要には安価で高耐久なS3や、大量の計算リソースを一時的に利用できるクラウドHPCは相性良いですよね。オンプレだと一時的に Lustre 使いたいから用意してというのは無理な話なので初期費用と、保守費用払って導入することになります。FSx for Lustre なら多少デプロイに時間がかかるのですが、それでも10分もあれば Lustre を用意できて高性能なストレージを従量課金で利用できるのはすごいサービスだなと思いました。
質疑応答
気になったものをピックアップ
- FSx for Luster の暗号化について
- パフォーマンスに影響はなく、暗号化・復号できる
- キャッシュも暗号化されている
- KMS と CMK をサポートしている
- Lustre のバージョンについて
- Lustre 2.12 を採用しており、最新の長期サポートバージョンである
- Lustre クライアントについて
- クライアントインスタンスはRAMの50%を確保し、ローカルキャッシュとして利用する
- デフォルトの設定であり調整可能
- クライアントインスタンスはRAMの50%を確保し、ローカルキャッシュとして利用する
おわりに
単純に複数のディスクへ分散して速度を稼いでいるだけではなくサーバー単位で分散されており、マシンパワーもスケールさせているのは興味深いです。安価で高耐久な S3をストレージストアにして間に FSx for Lustre を入れることにより S3バケット上のオブジェクトを EC2インスタンスから直接アクセスできてかつ、高速アクセスできるのが強みですね。
メタデータの保存先のフラッシュストレージは MDT(Meta Data Target)と呼ばれるのですが Lustre の基礎知識がないとセッション前半は難しいかもしれません。以下のブログで基本的な用語に触れているのでご興味あれば読んでみてください。
あとは Foundation Medicine社のように世界に貢献できるような仕事したいなと思いました。